package com.moli.iov.down.command.design.command.param.setting.impl;

import com.moli.iov.down.model.dto.remoting.extend.CommandExtendDto;
import com.moli.iov.down.command.design.command.param.setting.SettingDataEncoderCommand;
import com.moli.iov.util.ByteArrayUtil;
import com.moli.iov.util.StringUtil;
import org.apache.commons.lang.ArrayUtils;

/**
 * <p>
 *  普通命令解析
 *
 *  终端序列号、终端型号、供应商名称、ICCID、MSISDN、软件版本
 *  硬件版本、VIN、平台域名或 IP、蓝牙名称、蓝牙mac地址
 * </p>
 *
 * @author: zql
 * @Date: 2019/4/28 8:55
 */
public class GeneralEncoderCommand implements SettingDataEncoderCommand {

    @Override
    public byte[] execute(CommandExtendDto commandExtendDto, byte[] all) {

        byte[] parameterId = StringUtil.hexStringToByte(commandExtendDto.getParameterId());

        byte[] paramContent = ByteArrayUtil.strToAscii(commandExtendDto.getParameterContent());
        byte[] len = new byte[]{ByteArrayUtil.toByte(paramContent.length)};

        byte[] idLen = ArrayUtils.addAll(parameterId, len);
        byte[] bytes = ArrayUtils.addAll(idLen, paramContent);
        return ArrayUtils.addAll(all, bytes);
    }
}
